Delta ์ง๋ ฌํ™” ๋ฌธ์ œ

8/6/2025

๋ฌธ์ œ ์ƒํ™ฉ

const handleSave = () => {
	const content: Delta | null = quillRef.current?.getContents() || null;
	console.log("content : ", content);
	if (title && content) {
		createBoard(title, content);
	}
};

ํŽ˜์ด์ง€์—์„œ ์ €์žฅ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์œ„์˜ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ content๋ฅผ ์ฐ์–ด๋ณด๋ฉด Object { ops: [โ€ฆ] } ๋ผ๊ณ  ๋‚˜์˜จ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ action.ts์—์„œ content๋ฅผ ์ฐ์–ด๋ณด๋ฉด content : [Function (anonymous)]๋ผ๊ณ  ๋‚˜์˜จ๋‹ค.

export async function createBoard(title: string, content: Delta | null) {
	const session = await auth();
	const user: User | null = (session?.user as User) || null;
	console.log("content : ", content);
	const { error } = await sql.from("board").insert({
		writer: user?.username,
		title: title,
		content: content,
	});
	if (error) {
		console.error("Error inserting Data : ", error);
	}
}

์›์ธ

serialization์ด ๋ฌธ์ œ๋ผ๊ณ  ํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ๊ฐ์ฒด๋ฅผ ์ „์†กํ• ๋•Œ ์ž๋™์œผ๋กœ ์ง๋ ฌํ™”๋ฅผ ํ•ด์„œ ์ „๋‹ฌํ•˜๋Š”๋ฐ, ๊ฐ์ฒด๊ฐ€ ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด ์ง๋ ฌํ™” ๊ณผ์ •์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ๊ฐ์ฒด ๊ทธ๋Œ€๋กœ ์ „๋‹ฌ๋˜์ง€ ์•Š๋Š”๊ฒƒ ๊ฐ™๋‹ค.

ํ•ด๊ฒฐ

๊ทธ๋ž˜์„œ stringify()๋กœ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ค์–ด ๋ฌธ์ž์—ด ์ƒํƒœ๋กœ ์ €์žฅํ•˜๊ณ , ์กฐํšŒํ• ๋•Œ JSON.parse()๋กœ ๋‹ค์‹œ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด ํ™”๋ฉด์— ๋ณด์—ฌ์ค€๋‹ค.